package dsq.tools.arrays;

import java.util.ArrayList;
import java.util.Arrays;

/**
 * 给自己做的工具,数组类工具
 * @author duanshaoqian
 *
 */
public class DsqArrayTool {
	
	private DsqArrayTool(){};//防止创建对象私有化构造函数
	/**
	* 获取整型数组的最大值
	* @param arr 接收一个元素为int 类型的数组 
	* * @Return 该数组的最大的元素值
	*/
	public static int getMax(int[] arr) {
		int maxIndex = 0;
		for(int x = 1; x < arr.length; x++){
		if(arr[x] > arr[maxIndex]) maxIndex = x;
		}
		return arr[maxIndex];
	}
	
	/**
	 * 用于给数组进行元素的位置置换。
	 * @param arr
	 * @param a
	 * @param b
	 */
	private static void swap(int[] arr, int a,int b){
		int temp = arr[a]; 
		arr[a] = arr[b]; 
		arr[b] = temp;
	}

	
	/**
	* 对数组进行选择排序
	* @param arr 接收一个元素为int 的数组
	*/
	public static void selectSort(int[] arr){
		
		for(int x = 0; x < arr.length -1; x++){
			for(int y = x + 1; y < arr.length; y++){
				if(arr[x] > arr[y]) 
					swap(arr,x,y);
			}
		}
	}
	
	/**
	* 获取指定的元素在指定数组中的索引
	* @param arr 接收一个元素为int 类型的数组
	* @param key 要找的元素
	* @return 返回该元素第一次出现的位置,如果不存在则返回 -1
	*/
	public static int getIndex(int[] arr,int key){
		for (int i = 0; i < arr.length; i++) {
			if(arr[i] == key){
				return i;
			}
		}
		return -1;
	}
	
	
	
	/**
	 * 查看 ArrayList<String> 是否包含某元素
	 * @param arr
	 * @param str
	 * @return
	 */
	 public boolean isExist(ArrayList<String> arr, String str){
		 
        if (arr != null && arr.size() > 0) {
            for (String s : arr) {
            	if (s.equals(str)) {
            		return true;
            	}
            }
        }
        return false;
    }

	public void print(int[] arr) {
		System.err.println(Arrays.toString(arr));
	}

}
